package com.youi.shop.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.youi.shop.commons.result.RespEntity;
import com.youi.shop.pojo.entity.Product;
import com.youi.shop.pojo.qo.product.UserUpdateProductQO;
import com.youi.shop.pojo.vo.product.ProductVO;

import java.util.List;

/**
 * <p>
 * 商品信息表 服务类
 * </p>
 *
 * @author xxf
 * @since 2020-11-09
 */
public interface ProductService extends IService<Product> {

    /**
     * 分页查询
     * @param page
     * @param size
     * @return
     */
    RespEntity<List<ProductVO>> selectByPage(int page, int size);

    /**
     * 查询所有
     * @return
     */
    RespEntity<List<ProductVO>> selectAll();

    /**
     * 按商品种类查询
     * @param categoryId
     * @return
     */
    RespEntity<List<ProductVO>> selectByCategory(Long categoryId);

    /**
     * 按id批量查询商品
     * @param productIds
     * @return
     */
    RespEntity<List<ProductVO>> selectByIds(List<Long> productIds);

    /**
     * 根据商品名称模糊查询
     * @param productName
     * @return
     */
    RespEntity<List<ProductVO>> selectByName(String productName);

    /**
     * 修改单个商品信息
     * @param userUpdateProductQO
     * @return
     */
    boolean updateProduct(UserUpdateProductQO userUpdateProductQO);

    /**
     * 批量删除商品
     * @param productIds
     * @return
     */
    boolean deleteProduct(List<Long> productIds);
}
